package com.ruoyi.system.service.Evaluating;

import java.util.List;
import com.ruoyi.system.domain.Evaluating.EvaluationResult;
import com.ruoyi.system.domain.Evaluating.IndicatorEvaluationScore;
import com.ruoyi.system.domain.dto.EvaluationResultSearchDto;

/**
 * 评价结果Service接口
 * 
 * @author ruoyi
 * @date 2024-07-04
 */
public interface IEvaluationResultService 
{
    /**
     * 查询评价结果
     * 
     * @param id 主键
     * @return 评价结果
     */
    public EvaluationResult selectEvaluationResultById(Long id);
    public int getTotalResultsCount();
    //evaluate the result

    //todo:public Float evaluateSelectedStandard(Indicator indicator, Standard standard, ModelMethod modelmethod);

    //todo:public List<Float> evaluateSelectedStandardDetaild(Indicator indicator,Standard standard,ModelMethod modelmethod)

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param evaluationResult 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<EvaluationResult> selectEvaluationResultList(EvaluationResult evaluationResult);

    public List<EvaluationResult> searchEvaluationResultList(EvaluationResultSearchDto evaluationResultSearchDto);

    public List<IndicatorEvaluationScore> selectIndicatorEvaluationScoreByResultId(String evaluationResultId);

    public List<EvaluationResult> selectEvaluationResultTrend(String standardId);

    public  List<EvaluationResult> selectEvaluationResultWithPublic(Integer _public);
    /**
     * 新增【请填写功能名称】
     * 
     * @param evaluationResult 【请填写功能名称】
     * @return 结果
     */
    public int insertEvaluationResult(EvaluationResult evaluationResult);

    /**
     * 修改【请填写功能名称】
     * 
     * @param evaluationResult 【请填写功能名称】
     * @return 结果
     */
    public int updateEvaluationResult(EvaluationResult evaluationResult);

    public int updateEvaluationResultbyName(String EvaluationName, Long id);

    public int alterEvaluationResultIsPublic(Long EvaluationResultId, Integer publicStatus);

    public int batchInsert(List<EvaluationResult> evaluationResults);
    /**
     * 批量删除【请填写功能名称】
     * 
     * @param ids 需要删除的【请填写功能名称】主键集合
     * @return 结果
     */
    //public int deleteEvaluationResultByIds(Long[] ids);

    /**
     * 删除【请填写功能名称】信息
     * 
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    //public int deleteEvaluationResultById(Long id);
}
